﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using InvestmentIntelligence.DbModel.Models;

namespace InvestmentIntelligence.Data.Repository
{
    public interface IFundBookSerieActiveRepository : ISeriesRepository
    {
        /// <summary>
        ///     Return IQuriable of all FundBookEntitySerie by fundbookId with FundBookData(without fundbook including)
        /// </summary>
        /// <returns></returns>
        List<T> GetList<T>(Func<IQueryable<FundBookEntityActiveSerie>, IEnumerable<T>> f, int fundBookId);

        List<FundBookEntityActiveSerie> GetList(Expression<Func<FundBookEntityActiveSerie, bool>> queryExpression);

        FundBookEntityActiveSerie GetLastSerie(int fundBookId);

        void Merge(IEnumerable<FundBookEntityActiveSerie> get);
    }
}